package org.aynu.propertyservice.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDate;

/**
 * <p>
 * 物业费用表
 * </p>
 *
 * @author 小粥
 * @since 2025-03-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("property_fees")
public class PropertyFeesPo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 费用Id
     */
    @TableId(value = "fee_id", type = IdType.AUTO)
    private Integer feeId;

    /**
     * 用户Id
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 周期开始，只保留年份
     */
    @TableField("period_start")
    private Integer periodStart;

    /**
     * 周期结束，只保留年份
     */
    @TableField("period_end")
    private Integer periodEnd;

    /**
     * 金额
     */
    @TableField("amount")
    private BigDecimal amount;

    /**
     * 状态
     */
    @TableField("status")
    private String status;

    /**
     * 到期日，只保留年月日
     */
    @TableField("due_date")
    private LocalDate dueDate;

    /**
     * 支付时间，保留年月日时分秒
     */
    @TableField("paid_at")
    private Timestamp paidAt;

    /**
     * 创建时间，保留年月日时分秒
     */
    @TableField("created_at")
    private Timestamp createdAt;
}